The above-listed incorporated patents and patent applications describe a system capable of remultiplexing program bearing digital signals. Illustratively, these signals are formatted as MPEG-2 transport streams according to the MPEG-2 Standard described in ISO 13818-1. Such transport streams may contain “program” signals, i.e., signals which must be delivered under strict timing considerations to prevent buffer underflow and overflow, most notably, at the ultimate receiver/decoder of the signal. Such signals may contain information (e.g., a video signal, an audio signal, a closed captioning or tele-text signal, a composition signal, a graphical overlay/subpicture signal, etc.) to be presented (e.g., displayed or made audible), or which is valid, at specific times (e.g., video frame intervals or audio frame intervals) which is variably encoded (compressed and formatted). Variable encoding produces different or varying amounts of information for each of multiple segments of a fixed amount of uncompressed information. For example, according to H.261, MPEG, MPEG-2, MPEG-4, H.263x, H.264, etc. the amount of compressed information needed to represent each encoded frame (picture, field, video object plane or other picture portion to be presented in a given interval of time) unpredictably varies from frame to frame. Such variably encoded signals can be transferred at a constant rate or a varying rate within the transport stream. The program signal is formed (encoded and formed into a transport stream signal) so that a receiver/decoder of known buffer size and information removal behavior (e.g., dictated in ISO 11172-1, 2 and 3, 13818-1, 2 and 3, 14496-1, 2 and 3, etc.) will neither overflow nor underflow. Time stamps, such as program clock references (“PCRs”) (or system clock references (“SCRs”)), presentation time stamps (“PTSs”) and decoding time stamps (“DTSs”) are inserted into the program bearing signal by the encoder which formed it, to enable a receiver/decoder to recover a clock signal of the encoder which produced the program signal and to remove various portions of the information for decoding and presentation according to a predictable schedule. To ensure that the receiver/decoder can always decode the program signal (barring an unexceptional circumstance, such as errors in the signal), all devices in the delivery path between the transmitter/encoder of the program signal and receiver/decoder must introduce a constant delay (i.e., the same delay) to each encoded portion of the program signal. In the case that some relative change in delay is introduced to one encoded portion of the program signal relative to the other portions, the device introducing such delay must modify the time stamps in the program signal to account for such delay as necessary. Alternatively, under extraordinary circumstances, the program signal may be re-encoded or its delivery rate adjusted to ensure that the timing information embedded in the program signal causes predictable and “ordinary” information “flow” through the receiver's buffers, decoder and presentation/execution devices (i.e., sufficient and controlled delivery of information through each stage of the receiver to enable the originally intended decodability of the program signal).
The above-listed incorporated references can also optimize a transport stream by increasing the amount of information the transport stream is carrying. Specifically, an input transport stream produced by a program encoder, or subsequently remultiplexed by a conventional remultiplexer, typically has some “null” transport packets. Null transport packets are a type of stuffing signal formed as transport packets with headers but no useful data in their payload. (A receiver/decoder of a transport stream simply discards or ignores null transport packets as they are received.) The purpose of null transport packets is to maintain adequate spacing between other transport packets carrying useful or decodable information in case that the instantaneous amount of information produced by an encoder is not sufficient to fill the entire bandwidth of the transport stream allocated for the signal produced by the encoder. Alternatively, in some signals, transport packets carrying useful data can be separated by durations in time not containing any transport packets, e.g., empty timeslots. The inventive system can optimize such a transport stream by inserting additional useful information bearing transport packets in lieu of null transport packets or into such empty timeslots. As can be appreciated, no useful data is lost in such an operation. Typically, the data to be inserted is “best-effort” data or some other type data not requiring a strict delivery schedule.
Another advantage of this system is the ability to distribute the remultiplexing operation into multiple standalone components that can communicate with one another.
A network for transferring compressed program signals, which has some redundant elements, is known in the prior art. See U.S. Pat. No. 5,835,493. In this system, plural uncompressed audio-video signals are received at plural program encoders and a “multiplexer”. The multiplexer is a type of switch that receives plural uncompressed audio-video signals at its inputs and connects one of them to its output. This type of multiplexer/switch can only switch a whole signal, i.e., it does not selectively switch on a packet or frame basis. The outputted transport streams of all of these encoders are inputted to a primary remultiplexer and a backup remultiplexer. The outputs of the two remultiplexers are inputted to a second “multiplexer,” which, again, is nothing more than a simple signal switch. In response to the active one of the remultiplexers detecting a program encoder failure, the active remultiplexer can cause the first multiplexer/switch to connect the uncompressed video signals of the failed program encoder to the backup program encoder. Likewise, the program encoders, or other monitoring device, can detect a failure of the primary remultiplexer and cause the second multiplexer/switch to select the transport stream outputted from the backup remultiplexer instead of the transport stream outputted from the primary remultiplexer. This system has the following drawbacks:    (1) This system has multiple inputs for receiving multiple uncompressed program signals, but only a single output from which the program signals may be transmitted. In a sense, this network merely selectively aggregates the input program signals into a single output.    (2) This system lacks a router or switch element that is capable of performing any “layer 3” or network layer routing/forwarding of the program signals to specific outputs. Nor does this system perform any “layer 2” or data link layer switching. In other words, there is no element that selectively outputs one packet to a first output and a second packet to a second output based on information contained in the packets, such as address or identifier information. The system can only choose which packets are to be outputted at all; all packets chosen for output emerge from the same output port as part of the single aggregate remultiplexed signal.
Also, in the unrelated art of telephony, apparatuses are known for switching entire input signals to specific outputs. Some of these devices have redundant elements for replacing failed elements. Generally, switching in such redundant systems is performed at “layer 1”. Such redundant systems do not perform any layer 2 or layer 3 switching, i.e., switching of specific segments of a given signal to one of multiple outputs based on address information contained with each such segment. Such apparatuses are not known to have buffering of the inputted signals and furthermore, do not require complicated internal processing of a stream of inputted packets as a preliminary step to ensuring that all packets are outputted according to a strict timing schedule.
The object of the present application is to provide an improved remultiplexer system with redundant operation in the event of failure of one or more of the standalone components of the remultiplexer system.